O
Egoboo é um jogo
Open Source estilo "roguelike".
A maioria dos jogos roguelike open source que temos por aí, não têm interface gráfica, são para terminal. Ou ainda, mesmo sendo para terminal, tem alguma front-end gráfica baseada em tiles.
Dos jogos deste estilo, um dos que tem o melhor gráfico (2D) que eu já conheci, foi o Vulture, que na verdade é apenas um front-end gráfico para os jogos NetHack, Slash'EM e UnNetHack.
Mas voltando ao Egoboo, ele tem um diferencial: é 3D!
Quando fui jogar o Egoboo pela primeira vez, percebi logo de cara um comportamento bem estranho: as setas direcionais do teclado não funcionavam direito. Ao apertar para cima, o personagem ia para baixo, ao apertar para baixo, o personagem também ia pra baixo. Ao apertar para esquerda, o personagem ia pra direita, e ao pressionar para a direita, o personagem também ia para a direita.
Pesquisando um pouco no Google, descobri que é um bug de código mesmo.
Compartilho com vocês a solução que eu utilizei para poder jogar o Egoboo sem o bug mencionado.
Esta solução foi testada no
Ubuntu 12.10 e usa o gerenciador de pacotes APT e o DPKG.
1. Crie um diretório qualquer, para trabalhar nele:
mkdir codigofonte
2. Entre no diretório criado e baixe o código fonte do seu repositório:
cd codigofonte
$ apt-get source egoboo
3. Após terminar de baixar os fontes, entre no diretório criado pelo
apt-get:
cd egoboo-2.8.1
4. Altere o arquivo
./src/game/game.c usando o
Gedit ou qualquer editor de texto puro. Nas linhas 2055 e 2056, você verá o seguinte texto:
joy_pos.x = ( control_is_pressed( INPUT_DEVICE_KEYBOARD, CONTROL_RIGHT ) - control_is_pressed( INPUT_DEVICE_KEYBOARD, CONTROL_LEFT ) );
joy_pos.y = ( control_is_pressed( INPUT_DEVICE_KEYBOARD, CONTROL_DOWN ) - control_is_pressed( INPUT_DEVICE_KEYBOARD, CONTROL_UP ) );
Você deve trocar estas duas linhas pelas quatro linhas seguintes:
/*joy_pos.x = ( control_is_pressed( INPUT_DEVICE_KEYBOARD, CONTROL_RIGHT ) - control_is_pressed( INPUT_DEVICE_KEYBOARD, CONTROL_LEFT ) );
joy_pos.y = ( control_is_pressed( INPUT_DEVICE_KEYBOARD, CONTROL_DOWN ) - control_is_pressed( INPUT_DEVICE_KEYBOARD, CONTROL_UP ) );*/
joy_pos.x = ( (int)control_is_pressed( INPUT_DEVICE_KEYBOARD, CONTROL_RIGHT ) - (int)control_is_pressed( INPUT_DEVICE_KEYBOARD, CONTROL_LEFT ) );
joy_pos.y = ( (int)control_is_pressed( INPUT_DEVICE_KEYBOARD, CONTROL_DOWN ) - (int)control_is_pressed( INPUT_DEVICE_KEYBOARD, CONTROL_UP ) );
Obs.: Tudo o que eu fiz foi comentar as linhas originais e copiá-las fazendo uma pequena alteração.
5. De dentro do diretório "egoboo-2.8.1" (você já está nele), rode o seguinte comando:
dpkg-buildpackage -rfakeroot -uc -b
Isso vai compilar os fontes e gerar os pacotes Deb.
6. Volte para o diretório pai e instale o pacote criado. Você pode dar dois cliques nele para instalá-lo. Se isso não funcionar, pode instalar na mão:
cd ../
$ sudo dpkg -i egoboo_2.8.1-1ubuntu1_amd64.deb
Obs.: Eu estava usando uma máquina 64 bits, por isso o nome com
amd64 no final. Se sua máquina for 32 bits, o nome do arquivo certamente será outro.
Percebam que esta solução é para o Ubuntu. Caso você utilize qualquer outra distribuição
GNU/Linux, pode baixar o código fonte direto da página dos desenvolvedores, fazer as mesmas alterações no mesmo arquivo, e instalar o jogo com os comandinhos já manjados por quem costuma compilar as coisas na mão:
# ./configure
# make
# make install
Possivelmente vai dar um monte de erro no
./configure, dizendo que falta biblioteca de desenvolvimento de alguma coisa, mas o README que vem junto com o código fonte, deve ter as informações necessárias sobre as dependências.
Espero que tenha sido útil, e bom jogo para vocês. =)
Nenhum comentário foi encontrado.